Indicia scanners often have fixed focus optics because mechanical focusing systems lack robustness to mechanical shocks, among other issues. The result is that scanners have limited depth of field, and the onus is on a user to position the object within that depth of field; various sub-models of a given scanner are made to address different scan ranges.
Additionally, the acceptable processing time for barcode readers is very short, as they are used in high-throughput settings such as grocery checkout counters. As such, there is a need to develop barcode readers that allow for a larger scanning depth of field while (a) still being robust to mechanical shocks and/or (b) providing a rapid response to the user.
To remove these limitations, there is an interest in using light field cameras for scanning. Light field cameras use a microlens array in the optical path to capture a set of light rays that can be combined in software to produce images focused at various distances. Light field imaging systems allow a user to capture four dimensional (4D) images that provide additional imaging information than can be provided by typical imaging systems. For example, a light field imaging array system can provide both spatial and angular light ray information.
A drawback associated with light field scanning is that the computational complexity of the refocusing operation is high compared to more traditional two dimensional image sensors. For example, typically, when light field imaging systems are utilized, the image data is analyzed, segmented into parts, and several re-focused images are created wherein each corresponding image is focused on different depths within the image as a whole. In order to do this, an objective function (e.g. sharpness) is maximized over the several re-focused images in order to determine the one providing highest contrast, and corresponding to the depth of the barcode in the scene. This higher computational complexity can cause unacceptably long delays between image capture and symbol decoding (e.g., decoding a barcode in the captured image).
An alternative to this approach is to analyze the scene in the Fourier domain, but this is slow because a large matrix must be transformed into the Fourier domain. The processing time of these methods can be slower than is desirable, in some applications.